#pragma once
#include "../include/sprite.hpp"
#include <vector>
#include "../include/enum.h"

class Enemy :
	public Sprite
{
private:
	int life;
	unsigned int lifeMax;
	unsigned int strength;
	bool alive;

	int sizeWalkingArea;
	int posInWalkingArea;
	WalkingDirection walkingDirection;

	SpritesManager* spritesManager;
	unsigned int actualFrame;
	unsigned int frameRate;

	std::vector<Sprite*> animImages; 
	unsigned int idSpriteDisplay;
	int width;
	int height;

public:
	Enemy(SpritesManager* _spritesManager, unsigned int type, int posXInit, int posYInit);
	~Enemy(void);

	void initialize(unsigned int type, int posXInit, int posYInit);
	void animate();
	void displayEnemy();

	bool checkIfIsHit(int posX, int posY, unsigned int heroStrength);

	inline bool isAlive(){ return alive; };
	inline unsigned int getFirstOAM_ID(){return OAM_ID;};
	inline void setAlive(bool _alive){alive = _alive;};

};

